# -*- coding: utf-8 -*-
#
from .helpers import untangle2


class Papanicolopulos(object):
    '''
    Stefanos-Aldo Papanicolopulos,
    New fully symmetric and rotationally symmetric cubature rules on the
    triangle using minimal orthonormal bases,
    Journal of Computational and Applied Mathematics,
    Volume 294, 1 March 2016, Pages 39–48,
    <https://doi.org/10.1016/j.cam.2015.08.001>,
    <https://arxiv.org/abs/1411.5631>.
    '''
    # pylint: disable=line-too-long
    def __init__(self, variant, index):
        self.name = 'Papanicolopulos({}, {})'.format(variant, index)

        if variant == 'fs':
            if index == 0:
                self.degree = 15
                data = {
                    's2': [
                        [-8.7456325826448314e-02, 2.9593233914348055e-01],
                        [+1.1825359733915675e-02, 1.1041137294398808e-01],
                        [+1.3633359800590992e-02, 5.5556777591097777e-02],
                        [+1.8152749803642489e-02, 4.9053686136135088e-01],
                        [+6.0151078120269021e-02, 2.3261140392265686e-01],
                        [+1.2218012059443138e-01, 3.7093650636643044e-01],
                        ],
                    's1': [
                        [+2.5613719808681695e-03, 1.7707930875254373e-03, 3.8231237353261144e-02],
                        [+1.2198751372066793e-02, 1.7499897301341594e-02, 1.4981904161827897e-01],
                        [+1.6436943369443905e-02, 1.8423065211738483e-02, 3.0745294013740204e-01],
                        [+2.8386552060758415e-02, 9.1205272592313119e-02, 2.0385875286816799e-01],
                        [+3.7839876770328761e-02, 9.7542934824370500e-02, 3.6325540013204588e-01],
                        ],
                    }
            elif index == 1:
                self.degree = 17
                data = {
                    's3': [
                        [4.2349520256914651e-02],
                        ],
                    's2': [
                        [2.9196690345779362e-03, 1.4939063814610984e-02],
                        [9.3338193514883386e-03, 4.9509703292414220e-01],
                        [1.5579210009132786e-02, 8.0176519909013158e-02],
                        [2.5862383995094124e-02, 4.6672613808660018e-01],
                        [2.7157513575493317e-02, 1.5914935745128311e-01],
                        [3.8226206597189359e-02, 4.0958102196506480e-01],
                        [3.8609391683443878e-02, 2.4459731986078312e-01],
                        ],
                    's1': [
                        [5.2599615183941239e-04, -1.7099279594795083e-02, 3.0469846218081181e-01],
                        [6.8369805127641023e-03, +1.5606149478884756e-02, 7.7467710451680744e-02],
                        [7.7402981968328509e-03, +1.2499472547638271e-02, 1.8300737741132522e-01],
                        [1.7306871686136278e-02, +2.4893796930192783e-02, 3.3136103343509682e-01],
                        [1.7633848414214556e-02, +6.0954488983763454e-02, 1.9083979150163133e-01],
                        [3.0720321205517157e-02, +1.1094663204631958e-01, 3.0371331245075517e-01],
                        ],
                    }
            elif index == 2:
                self.degree = 21
                data = {
                    's2': [
                        [1.5325221415702992e-03, 1.0830647913896135e-02],
                        [2.9596420858008904e-03, 4.9868116928006762e-01],
                        [7.1050719519832268e-03, 5.3206302593702216e-02],
                        [1.2422025450151194e-02, 4.8436880679907196e-01],
                        [1.3153853090548603e-02, 1.1717932446409532e-01],
                        [1.6107119933559410e-02, 1.8619987453160045e-01],
                        [1.9556998327421530e-02, 2.3770504697050238e-01],
                        [2.1147145803411153e-02, 4.5111809686333143e-01],
                        [2.1487249618095533e-02, 2.9890161661837961e-01],
                        ],
                    's1': [
                        [3.2432160362971586e-03, 1.0170375513970238e-02, 5.6106078740441129e-02],
                        [4.4460668245672958e-03, 7.4014800191294266e-03, 2.3806090893927820e-01],
                        [4.4471370127689858e-03, 9.4888802100390364e-03, 1.3371423612729252e-01],
                        [7.1928300897944027e-03, 1.0787085289532927e-02, 3.6087827036133641e-01],
                        [9.6881827696773583e-03, 4.8886410156411965e-02, 1.2856000707434670e-01],
                        [1.0771867254746005e-02, 4.0790478434921389e-02, 2.3192922019831619e-01],
                        [1.5376448792274195e-02, 1.0225476525427213e-01, 2.1318238024685213e-01],
                        [1.5418201625050997e-02, 5.6195103726493438e-02, 3.4615363893081413e-01],
                        [1.8727994081823490e-02, 1.9392111402204942e-01, 3.5741779412597602e-01],
                        [1.9618907978395862e-02, 1.3139693759954926e-01, 3.0964180048539108e-01],
                        ],
                    }
            elif index == 3:
                self.degree = 22
                data = {
                    's3': [
                        [1.8046065005519342e-02],
                        ],
                    's2': [
                        [1.4440555795319798e-03, 1.0496492318532830e-02],
                        [6.2664664495599813e-03, 4.9553364518875165e-01],
                        [7.6517443601230228e-03, 5.6049615132866118e-02],
                        [1.3279847784100933e-02, 4.7666520586421668e-01],
                        [1.5110120003822509e-02, 1.3171604835404205e-01],
                        [1.7591885388871395e-02, 4.4330230475416338e-01],
                        [1.8843708393925265e-02, 3.9478401564445792e-01],
                        [1.9848233599481159e-02, 2.1160132731775527e-01],
                        [2.0867162478628788e-02, 2.8055888993860051e-01],
                        ],
                    's1': [
                        [2.4014487111013746e-12, -3.6575820128899073e-01, 1.2177577928997972e-01],
                        [3.3916987259453458e-03, +1.0866084504841705e-02, 5.4699006820643735e-02],
                        [4.7426763618685095e-03, +6.9864102072462820e-03, 3.6084608822824210e-01],
                        [5.1719891070370321e-03, +1.1088449518326875e-02, 1.3147683381028283e-01],
                        [5.6281199112128266e-03, +9.4991301059710580e-03, 2.3579984150473896e-01],
                        [1.0573950573404284e-02, +3.7046616048002780e-02, 3.5355846422612314e-01],
                        [1.1086612482236757e-02, +5.6598109252542855e-02, 1.3252717627467012e-01],
                        [1.2134510421606178e-02, +4.9307086657456631e-02, 2.3345541183681795e-01],
                        [1.5154378475876465e-02, +9.1696755829684576e-02, 3.4021642111357170e-01],
                        [1.6798674545460295e-02, +1.1809385707142292e-01, 2.2811097966249483e-01],
                        [1.8524766539675115e-02, +1.7225220098241623e-01, 3.1953217634733161e-01],
                        ],
                    }
            elif index == 4:
                self.degree = 22
                data = {
                    's2': [
                        [6.9714569625074026e-04, 7.2282355159080528e-03],
                        [1.7336537619803626e-03, 4.9971491656223188e-01],
                        [4.6613130430455734e-03, 4.1952527272804088e-02],
                        [1.1584576765599566e-02, 3.1413219152050093e-01],
                        [1.1878974033021910e-02, 4.8001365161711657e-01],
                        [1.5338803655666700e-02, 1.2308745423016115e-01],
                        [1.9716376940272336e-02, 4.4571963043911533e-01],
                        [2.0572151491734754e-02, 1.8986241218389369e-01],
                        [2.3840660278137037e-02, 2.6033923338175580e-01],
                        [2.4461197089874872e-02, 3.9636684767162600e-01],
                        ],
                    's1': [
                        [1.8286280273112092e-03, 7.7395846886030781e-03, 3.9100167827328378e-02],
                        [1.8804497039628383e-03, 5.7706413021840362e-04, 2.9956301031600607e-01],
                        [3.7041086400111016e-03, 9.7957718535231410e-03, 9.9167580852252468e-02],
                        [4.6683403718348060e-03, 9.1886802064989649e-03, 1.8619068155280571e-01],
                        [7.2113411719295856e-03, 1.3467087568401818e-02, 4.0293889185510046e-01],
                        [7.9674333598873433e-03, 5.0626312467336898e-02, 1.0358808540929187e-01],
                        [9.0358003694371355e-03, 4.8388117761837650e-02, 1.8082300688832889e-01],
                        [9.4806411115590152e-03, 2.7491435853260346e-02, 2.8194341507949189e-01],
                        [1.5617370128353208e-02, 6.7133974447704386e-02, 3.5071285339799135e-01],
                        [1.6245319181056983e-02, 9.6704303616860346e-02, 2.3017640440360132e-01],
                        [2.1784808223531512e-02, 1.5193045482670228e-01, 3.1159323586348647e-01],
                        ],
                    }
            elif index == 5:
                self.degree = 23
                data = {
                    's2': [
                        [1.0233849339306483e-03, 8.8430909856400085e-03],
                        [2.3495328561160744e-03, 4.9904231799536475e-01],
                        [4.4227229483174649e-03, 4.1918494631921203e-02],
                        [9.3593949345890711e-03, 8.3843959400741894e-02],
                        [1.1223304907955516e-02, 3.5156602225687805e-01],
                        [1.1455393860718664e-02, 4.8142250008209758e-01],
                        [1.4851528190270431e-02, 1.3603683917665685e-01],
                        [1.8733990977523034e-02, 4.4588621023292907e-01],
                        [2.0095448898175008e-02, 1.9833791969077397e-01],
                        [2.1869521602463023e-02, 3.9764873352592073e-01],
                        ],
                    's1': [
                        [1.3903741389058627e-03, 2.1537508898247914e-03, 1.1147822164436515e-01],
                        [2.0936131717002298e-03, 7.9756704834337989e-03, 4.5998761911927387e-02],
                        [2.2627278911605850e-03, 2.2252130687022897e-03, 2.9991704500621363e-01],
                        [5.0988760785318239e-03, 1.0567990234213330e-02, 1.9450617255148173e-01],
                        [5.8027924863416356e-03, 2.6390157960052386e-02, 1.0487601375183196e-01],
                        [6.9904741201632318e-03, 1.3726614788916335e-02, 3.9359274155812224e-01],
                        [1.0105447412685495e-02, 3.2931670717119124e-02, 2.7745010154284910e-01],
                        [1.0940686820111041e-02, 5.6458369286788004e-02, 1.7041930960722382e-01],
                        [1.2697747467200144e-02, 2.4905869950604637e-01, 2.8048464594062622e-01],
                        [1.4936905214735932e-02, 6.7100228845598728e-02, 3.5940684385217631e-01],
                        [1.6245944888963148e-02, 1.0095848404745636e-01, 2.3967897332407878e-01],
                        [2.0408964921138070e-02, 1.5208140311691476e-01, 3.1660538238914820e-01],
                        ],
                    }
            elif index == 6:
                self.degree = 24
                data = {
                    's3': [
                        [2.2937943480967490e-02],
                        ],
                    's2': [
                        [7.6737746111581423e-04, 7.6448158720914035e-03],
                        [5.5235784447516976e-03, 4.9512326693489417e-01],
                        [8.3849953027563106e-03, 8.5335714707740554e-02],
                        [1.2217380178002352e-02, 4.7540435757943000e-01],
                        [1.3070390605611782e-02, 1.4361312600254966e-01],
                        [1.7881227758429579e-02, 4.4000137550057372e-01],
                        [1.8221744139097312e-02, 2.0438684787130393e-01],
                        [2.1641497217567616e-02, 3.9155520703268198e-01],
                        [2.1688312926922602e-02, 2.6936069184956823e-01],
                        ],
                    's1': [
                        [1.7461845826617216e-03, 1.2891576532218214e-03, 3.8930032117370400e-01],
                        [1.8385716037427871e-03, 8.0461554413475099e-03, 3.9945518998510898e-02],
                        [1.9989366333621290e-03, 3.9746390407908042e-03, 1.7756755351844719e-01],
                        [2.0636961713359080e-03, 5.6533968387799801e-03, 9.7304373163390800e-02],
                        [2.2953950871584159e-03, 3.6541646347000717e-02, 4.7379136469555827e-02],
                        [4.5795232889082318e-03, 8.4720312527892441e-03, 2.7654233490622632e-01],
                        [5.2932300990954041e-03, 3.1868785558484866e-02, 1.0186004800841345e-01],
                        [5.5787469959908817e-03, 2.5074485756959322e-02, 1.7990041142989785e-01],
                        [8.6193394872566415e-03, 2.4954649207236983e-02, 3.7476148829145151e-01],
                        [9.9923539922470699e-03, 7.1806927489926675e-02, 1.6285371365641890e-01],
                        [1.0305616207681308e-02, 4.6495368325225606e-02, 2.6299994692532691e-01],
                        [1.4604546126250248e-02, 7.9445658328927776e-02, 3.5387462268603243e-01],
                        [1.4998500676250463e-02, 1.1210496839891453e-01, 2.4045272001109688e-01],
                        [1.9230783117436680e-02, 1.6288704432089313e-01, 3.1632883636136616e-01],
                        ],
                    }
            elif index == 7:
                self.degree = 25
                data = {
                    's3': [
                        [1.9730145564170694e-02],
                        ],
                    's2': [
                        [7.9784978009049068e-04, 7.8022199979002112e-03],
                        [1.6540557559100446e-03, 4.9920005126586386e-01],
                        [3.9483067815592552e-03, 3.9745976060168636e-02],
                        [7.3059304419564701e-03, 4.8948425246569233e-01],
                        [8.1278558796413266e-03, 9.0694417901958868e-02],
                        [1.1970371685575694e-02, 1.5122428135781504e-01],
                        [1.2299765626203808e-02, 4.6721306520841810e-01],
                        [1.6112719176052503e-02, 2.1191329495049538e-01],
                        [1.6232869701501101e-02, 4.3276248978793980e-01],
                        [1.8798881038162154e-02, 2.7376044759386797e-01],
                        [1.8817300377344574e-02, 3.8736585153047043e-01],
                        ],
                    's1': [
                        [1.0058419636349749e-03, -1.7548642901802665e-04, 2.7505910881984064e-01],
                        [1.7768341951951061e-03, +7.6272354243569927e-03, 4.0675651667317986e-02],
                        [2.5263768046607073e-03, +7.1744598182213312e-03, 9.8073197818081104e-02],
                        [2.8903213344256395e-03, +6.3674541720953543e-03, 1.7710896672593235e-01],
                        [4.3188177509815720e-03, +7.4875157532566013e-03, 3.8161168515912564e-01],
                        [5.6280372428999812e-03, +3.7463934879853701e-02, 9.5814659140257524e-02],
                        [6.2380351084315912e-03, +1.8103532201923581e-02, 2.7060854554092645e-01],
                        [6.5242706554108380e-03, +3.3495910148005362e-02, 1.7314445335143583e-01],
                        [9.5756742981397934e-03, +3.9206711918798057e-02, 3.6987571368345934e-01],
                        [9.6717253781026906e-03, +8.2016261697038934e-02, 1.6490559742319441e-01],
                        [1.0525535644238974e-02, +6.0505783675033412e-02, 2.5976041170346387e-01],
                        [1.3760331394147538e-02, +1.2548211909622189e-01, 2.4143815534801266e-01],
                        [1.3860745244640128e-02, +9.5367159491400733e-02, 3.4863741954287258e-01],
                        [1.7042808935729976e-02, +1.7465941156686071e-01, 3.1605002763020679e-01],
                        ],
                    }
            else:
                assert index == 8
                self.degree = 25
                data = {
                    's2': [
                        [-2.6954961223661029e+00, 2.4170556499722642e-01],
                        [-1.8053087282731432e-03, 6.6841145410301242e-02],
                        [+8.1866000177608712e-04, 7.9121374020986561e-03],
                        [+3.8724080224669857e-03, 3.8682500223883039e-02],
                        [+5.1956272890942620e-03, 4.9571742583009781e-01],
                        [+8.2758256036296277e-03, 9.6693451684011195e-02],
                        [+1.1494692925102619e-02, 4.7679605292318106e-01],
                        [+1.4289758700353008e-02, 1.5136311625338722e-01],
                        [+1.5595032733898223e-02, 4.4455143684310217e-01],
                        [+1.7062959875833842e-02, 3.6191150147640905e-01],
                        [+1.7127072397518896e-02, 4.0188565220838512e-01],
                        [+1.4306861745315699e-01, 2.2915717002669783e-01],
                        ],
                    's1': [
                        [1.1371418149652463e-03, 3.0330247109068250e-04, 1.7873092973242388e-01],
                        [1.7135519419954578e-03, 7.2850660720176442e-03, 4.1091962617909122e-02],
                        [1.9681537577992698e-03, 2.0981905527894520e-03, 3.8040500244755365e-01],
                        [2.8980619808650623e-03, 8.2493554021632991e-03, 9.8451598163584092e-02],
                        [4.7760727126949622e-03, 9.1984489688911476e-03, 2.7127899306756620e-01],
                        [6.4898979745711379e-03, 2.2789435125158540e-02, 1.7304270963987173e-01],
                        [6.8410434776279448e-03, 4.3868460650469308e-02, 9.1754132899196483e-02],
                        [8.2647322808636348e-03, 2.4839829916622230e-02, 3.7681165170843428e-01],
                        [1.0224364896269249e-02, 4.6355430068864403e-02, 2.6556158456309281e-01],
                        [1.0244154062961084e-02, 7.1944171977122509e-02, 1.7053912142173719e-01],
                        [1.3671900203659292e-02, 7.7170587472222635e-02, 3.5512733589984241e-01],
                        [1.5057862935694812e-02, 1.1403766860632927e-01, 2.4467281676911143e-01],
                        [1.5806425931878948e-02, 1.5315670236426460e-01, 3.2818945118898774e-01],
                        [1.2978236907405933e+00, 2.3969111281958894e-01, 2.4504506954450558e-01],
                        ],
                    }
        else:
            assert variant == 'rot'
            # ERR the first 8 schemes are flawed by round-off error
            # if index == 0:
            #     self.degree = 10
            #     data = {
            #         'rot': [
            #             [1.471114278202593e-02, 1.4583457698929406e-01, 1.1398571160097378e-02],
            #             [1.492859353593016e-02, 4.8063935754816450e-01, 3.9643706994449100e-03],
            #             [1.494732390206139e-02, 2.8384362149153981e-03, 2.3534170704269680e-01],
            #             [1.535700197392982e-02, 2.7382456096225798e-02, 4.3399288238870903e-02],
            #             [5.144050132919330e-02, 2.9036991669239248e-01, 5.9484989766216530e-02],
            #             [5.518739230021077e-02, 1.0257910434962711e-01, 1.4552326855517442e-01],
            #             [7.171797994099513e-02, 8.9138718639893449e-02, 3.6893474593389924e-01],
            #             [9.504339756898555e-02, 2.8930618917096718e-01, 2.2719614311462366e-01],
            #             ],
            #         }
            # elif index == 1:
            #     self.degree = 11
            #     data = {
            #         'rot': [
            #             [1.3807279155821188e-02, 3.1732722526593850e-02, 3.3815369341710838e-02],
            #             [2.1703235273357904e-02, 1.5983735591572859e-01, 2.4724830394212860e-02],
            #             [2.7034127752203152e-02, 2.9507164313468275e-02, 1.6940387614133595e-01],
            #             [2.7331241653935742e-02, 2.2822576496584326e-02, 3.8290411387830003e-01],
            #             [2.8336285167031156e-02, 3.6037416692790264e-01, 2.5154943482374847e-02],
            #             [4.8543667126132534e-02, 1.5264948856756949e-01, 1.3099101797750154e-01],
            #             [5.2887299088776353e-02, 3.4869892349833942e-01, 1.2098249664481753e-01],
            #             [5.5162253899304424e-02, 1.2126384660100323e-01, 3.1955600650808108e-01],
            #             [5.8527944216770877e-02, 2.7990247037442650e-01, 2.6967431411437986e-01],
            #             ],
            #         }
            # elif index == 2:
            #     self.degree = 12
            #     data = {
            #         's3': [
            #             [2.1409425726798499e-02],
            #             ],
            #         'rot': [
            #             [8.3668178723688680e-05, 3.0113195801207516e-02, -9.4716062682497798e-02],
            #             [1.2413637067984845e-02, 3.2866530321445964e-01, 8.0456452092608124e-03],
            #             [1.6239945629216764e-02, 4.8124921152851295e-02, 9.2386192680937784e-01],
            #             [2.4194039324984051e-02, 1.4285084152736457e-01, 3.1019238692720583e-02],
            #             [2.6967365586005654e-02, 2.0819192514800808e-01, 7.6483124674519465e-01],
            #             [2.7774427657215123e-02, 4.2582582220396570e-01, 5.5039569631163676e-01],
            #             [4.7016778451345782e-02, 3.2386823359308331e-01, 7.9851341494143677e-02],
            #             [4.8593414405827089e-02, 1.5417640541334421e-01, 7.0764795631132815e-01],
            #             [5.8505280711050843e-02, 3.4938361803935480e-01, 5.2486110031263145e-01],
            #             [6.4408301078713329e-02, 2.9931586764275858e-01, 2.2924961529379628e-01],
            #             ],
            #         }
            # elif index == 3:
            #     self.degree = 13
            #     data = {
            #         'rot': [
            #             [8.0799718922462509e-03, 2.6016776102192420e-02, 2.4022213893300930e-02],
            #             [1.2892029137773462e-02, 1.8883631298672997e-02, 1.2208083167169181e-01],
            #             [1.6560237922093254e-02, 1.3163917121880553e-01, 2.2874705099001899e-02],
            #             [1.9023135868897031e-02, 2.0731528553134732e-02, 2.8073779660838988e-01],
            #             [1.9359657480323249e-02, 4.7664289518446956e-01, 5.0484945619579669e-01],
            #             [1.9583798359223862e-02, 3.0238695445079383e-01, 1.9975752788321421e-02],
            #             [3.0281493825968991e-02, 1.0153977972399897e-01, 1.1902821597585499e-01],
            #             [3.8164066479861487e-02, 2.4961442779733523e-01, 1.0358996690547731e-01],
            #             [3.8199338317111094e-02, 1.0202924054306213e-01, 2.7688825736351558e-01],
            #             [4.0847152891851063e-02, 2.2678927602203702e-01, 2.3372837421755474e-01],
            #             [4.1085695986564898e-02, 4.3740951791107846e-01, 9.5992093320339561e-02],
            #             [4.9256755171418691e-02, 3.8075857916224454e-01, 2.2785535711866886e-01],
            #             ],
            #         }
            # elif index == 4:
            #     self.degree = 14
            #     data = {
            #         's3': [
            #             [1.7219601997330802e-02],
            #             ],
            #         'rot': [
            #             [1.2234370324430287e-03, 1.2237951552984698e-01, -2.2116463863324699e-02],
            #             [5.6258060653080677e-03, 2.5691992957650384e-01, 7.4296194517695191e-01],
            #             [6.1803448724676207e-03, 2.2412698148715271e-02, 2.1296338767865061e-02],
            #             [1.0957697357972611e-02, 1.0798361586547704e-01, 8.7360548159491958e-01],
            #             [1.1462343010639779e-02, 4.5439914870970866e-01, 8.4021188904826009e-03],
            #             [2.2295784039866404e-02, 2.6093699885015353e-01, 2.5735252088220618e-02],
            #             [2.3382863187460197e-02, 1.0865181340319861e-01, 4.7317979503788452e-02],
            #             [2.6558067295112075e-02, 3.6315118499871291e-01, 6.0034034591339780e-01],
            #             [3.0850488270755878e-02, 1.8807008851943477e-01, 7.4193352129130696e-01],
            #             [4.0681051448570316e-02, 3.9396304707724483e-01, 8.3219241365617300e-02],
            #             [4.3652397747231078e-02, 2.0428642734395072e-01, 1.3728033930118569e-01],
            #             [5.0893743280552760e-02, 3.1551192268626971e-01, 5.3337656735860284e-01],
            #             [5.3829442392509912e-02, 3.2402330092311277e-01, 2.2810272652355670e-01],
            #             ],
            #         }
            # elif index == 5:
            #     self.degree = 15
            #     data = {
            #         's3': [
            #             [4.6749612087783110e-02],
            #             ],
            #         'rot': [
            #             [5.0278560972481460e-03, 1.8434795476156614e-02, 2.1020578568986589e-02],
            #             [7.5986819401049491e-03, 9.4469391541665795e-02, 1.4008492164338544e-02],
            #             [1.0732119583647835e-02, 2.2105953725731281e-01, 1.4600157192749055e-02],
            #             [1.0830851965744705e-02, 1.8316125580224017e-02, 1.0683143253847732e-01],
            #             [1.2248727250486568e-02, 3.8411182081140655e-01, 1.3506565318991916e-02],
            #             [1.4397839583790739e-02, 1.7609576799084838e-02, 2.4686944042402645e-01],
            #             [1.4983807152201952e-02, 1.6211104266107675e-02, 4.2002732343586757e-01],
            #             [1.9232683397058456e-02, 9.4583522597997613e-02, 7.8193785237664140e-02],
            #             [2.0834684882606196e-02, 2.2302054118668646e-01, 6.9024652212795676e-02],
            #             [2.8576965678339242e-02, 9.1368633556670839e-02, 1.9744162005839791e-01],
            #             [2.9031677885589070e-02, 3.8453093605192734e-01, 7.3097762126704491e-02],
            #             [3.0240283270453857e-02, 2.1503874179825228e-01, 1.5589306185405327e-01],
            #             [3.2511521853897149e-02, 8.5318970181728557e-02, 3.5900755344806651e-01],
            #             [4.0187126563651816e-02, 2.0423041220511115e-01, 2.8615721494302876e-01],
            #             [4.1315302199251620e-02, 3.6389089896392435e-01, 1.8108597386179942e-01],
            #             ],
            #         }
            # elif index == 6:
            #     self.degree = 16
            #     data = {
            #         'rot': [
            #             [2.6584042558591993e-03, 2.6023443494547538e-01, -7.7960753911714194e-03],
            #             [3.3996223032543510e-03, 8.7654435676472867e-02, 9.0944387153089967e-01],
            #             [3.5191090034989176e-03, 3.0067304757784230e-01, 7.0038809708394578e-01],
            #             [4.0441404117086601e-03, 1.8849925360918680e-02, 1.6472917542654605e-02],
            #             [6.8294711512590653e-03, 9.8416684250052983e-02, 1.1941006711737949e-02],
            #             [1.0440167558510119e-02, 4.6040301696118247e-01, 1.1787969349285804e-02],
            #             [1.4730712491919611e-02, 7.3829911003045562e-02, 8.6868121096049367e-01],
            #             [1.4997188989449286e-02, 1.8610993333739587e-01, 7.8796285305688463e-01],
            #             [1.6563214492522717e-02, 3.8320231828647305e-01, 5.8855734984388641e-01],
            #             [1.9748195843965539e-02, 1.8610788752983731e-01, 4.2129359575999843e-02],
            #             [2.1203128918974853e-02, 3.2943567008468772e-01, 3.8398059357352493e-02],
            #             [2.4448645222118131e-02, 2.7205732589540688e-01, 6.5105170913107424e-01],
            #             [2.8149869751438746e-02, 1.4123538065593752e-01, 7.2939931701324412e-01],
            #             [3.6902116480954726e-02, 4.4901563513616993e-01, 9.7621841960191705e-02],
            #             [3.7047736203275151e-02, 2.6679836751316865e-01, 1.3739927089093515e-01],
            #             [4.1332532979016103e-02, 2.8238245710611226e-01, 5.3491733004439057e-01],
            #             [4.7319077275608155e-02, 3.4974732138010473e-01, 2.3813215085067585e-01],
            #             ],
            #         }
            # elif index == 7:
            #     self.degree = 16
            #     data = {
            #         's3': [
            #             [3.6632403806727082e-02],
            #             ],
            #         'rot': [
            #             [3.5443048770430210e-03, 1.5961011713106842e-02, 1.6883125432529632e-02],
            #             [4.0175883370409124e-03, 3.8219308417185389e-03, 9.9349672744069334e-02],
            #             [4.1907200912961011e-03, 9.2621730805488509e-02, 4.7177504781192514e-03],
            #             [8.5627826851592172e-03, 9.8098497053844668e-03, 2.4673891829167552e-01],
            #             [9.9790078170497488e-03, 2.3445355549323996e-01, 1.2521221333540609e-02],
            #             [1.0212563539778776e-02, 5.1657391379326428e-02, 5.7775785013584748e-02],
            #             [1.4081474710639794e-02, 1.5979112409302033e-02, 4.1344293672630827e-01],
            #             [1.4629924655641394e-02, 3.9685647522283096e-01, 1.6762640234766528e-02],
            #             [1.6056466268479737e-02, 1.4036886341620636e-01, 5.0400029219950293e-02],
            #             [1.7024341971022632e-02, 4.8646064695551550e-02, 1.5360246929131849e-01],
            #             [2.4955767639171515e-02, 6.7545698927945347e-02, 2.9356271866503075e-01],
            #             [2.8199116717009406e-02, 1.6047619247173853e-01, 2.7611972660288958e-01],
            #             [2.8270578986067097e-02, 2.8046271373091425e-01, 7.7279834362078526e-02],
            #             [2.9226110917024206e-02, 1.4735692525659394e-01, 1.4801238883904977e-01],
            #             [3.4006909002989111e-02, 4.2474074664756895e-01, 2.0895363610614195e-01],
            #             [3.4235623800026052e-02, 4.5172438307089813e-01, 8.7033324580191015e-02],
            #             [3.9929250048985579e-02, 2.8831873591736207e-01, 1.9022911957088945e-01],
            #             ],
            #         }
            if index == 8:
                self.degree = 17
                data = {
                    'rot': [
                        [3.3770360080995288e-03, 1.4720966195626592e-02, 1.7639984855506732e-02],
                        [3.8199256701939295e-03, 7.5827872337699789e-02, 7.6974758437722557e-03],
                        [6.6240260814413475e-03, 3.1058551655846400e-01, 8.3200919510460474e-03],
                        [7.2849007348734793e-03, 1.4488314624940400e-02, 9.0164039580071326e-02],
                        [9.9650024734054057e-03, 1.7814385225301996e-01, 1.6423858046515614e-02],
                        [1.0276345098595948e-02, 4.6613355079593471e-01, 1.2335581768737785e-02],
                        [1.0309491303777179e-02, 1.4736566166282276e-02, 2.0932517115745763e-01],
                        [1.1602229136800221e-02, 1.4332535547880318e-02, 3.5860231579542368e-01],
                        [1.2469743787482088e-02, 7.5303349390642163e-02, 5.5968132994742077e-02],
                        [1.9632479515531948e-02, 3.1733939350172785e-01, 5.1694878418799495e-02],
                        [2.0101507075145186e-02, 7.5354265490354566e-02, 1.5459821166573010e-01],
                        [2.0906045568565134e-02, 1.8257077444087677e-01, 2.6653005963514675e-01],
                        [2.1332247671603719e-02, 1.7971003272207475e-01, 8.1586227754905885e-02],
                        [2.3749377189184673e-02, 1.7580794171567718e-01, 1.8035364052078595e-01],
                        [2.4777024008132021e-02, 4.5873149968878352e-01, 4.7412600771932673e-01],
                        [2.5585570242272617e-02, 7.5319692074374348e-02, 2.9375410536296775e-01],
                        [3.1310858803301152e-02, 1.6330517792538479e-01, 3.8425118776594169e-01],
                        [3.1590362549437513e-02, 3.1181356869961463e-01, 1.3950152599660817e-01],
                        [3.8619160415490239e-02, 3.0604825911202793e-01, 2.6772065354596208e-01],
                        ],
                    }
            elif index == 9:
                self.degree = 18
                data = {
                    's3': [
                        [-1.2584522158487324e-01],
                        ],
                    'rot': [
                        [1.2972711052469132e-03, 9.2243717701637300e-03, 9.5403763890216930e-03],
                        [4.4043445159056777e-03, 1.1588174868222537e-02, 5.9910234445416974e-02],
                        [4.5538027787717867e-03, 1.3710944923248680e-01, 8.1342322238399222e-03],
                        [5.2522116874830077e-03, 5.4074658130232205e-02, 1.5964034865851205e-02],
                        [7.3746378722098511e-03, 1.2356208531742394e-02, 1.5632145821478535e-01],
                        [8.8347868725932362e-03, 2.5444301078665216e-01, 1.3228036080597975e-02],
                        [9.6477764248827317e-03, 1.2200654548168254e-02, 4.3851807730182485e-01],
                        [9.8670997804213446e-03, 3.9559271713540312e-01, 1.2905266057921206e-02],
                        [1.0260713189231744e-02, 1.3989490384594665e-02, 2.8757843019601675e-01],
                        [1.1796695983077324e-02, 6.1242622253631036e-02, 8.2131031407759847e-02],
                        [1.2985507535111396e-02, 1.4018729428171406e-01, 5.0988464618207704e-02],
                        [1.6318205824572777e-02, 6.5953460657672491e-02, 1.8230645755123917e-01],
                        [1.7525616506223078e-02, 6.2413944208807554e-02, 4.1171546934984560e-01],
                        [1.8411831442871156e-02, 7.4301715278995178e-02, 2.9370394461286520e-01],
                        [1.9068970594065069e-02, 2.5575842907678070e-01, 6.8183146863573477e-02],
                        [2.0582184685952944e-02, 3.8974889800275020e-01, 6.6997893569429187e-02],
                        [2.3589141249305487e-02, 1.5516843299002955e-01, 1.4008668235066954e-01],
                        [3.1090952263188074e-02, 1.7047292786075019e-01, 2.6125400206085542e-01],
                        [3.2039966987225443e-02, 2.8646919654918207e-01, 1.6305389426422914e-01],
                        [3.2660417772954836e-02, 1.5507903214893104e-01, 4.0849692015535077e-01],
                        [7.7719605456997201e-02, 3.0640947365131938e-01, 3.0433359769752272e-01],
                        ],
                    }
            elif index == 10:
                self.degree = 18
                data = {
                    'rot': [
                        [2.6377911268825266e-03, 3.6978096405509784e-03, 7.4357923508124160e-02],
                        [2.6749066509967508e-03, 1.4914399227998885e-02, 1.3690913073362648e-02],
                        [3.1930382737635201e-03, 1.6973999621930291e-03, 2.0891369061546108e-01],
                        [4.1706984376102671e-03, 8.0662083946625274e-02, 8.2435326902914278e-03],
                        [5.2592032376789100e-03, 1.9874790140231080e-01, 6.9765950961831660e-03],
                        [7.1884450079873841e-03, 3.4670271914727641e-01, 9.0597713534798507e-03],
                        [8.9587826920653982e-03, 4.8634633387104276e-02, 5.5791052971746698e-02],
                        [9.2487253871255930e-03, 1.2831862984944630e-02, 3.4469254847797043e-01],
                        [1.0074246248491408e-02, 2.9359538994220516e-02, 1.3996411031839173e-01],
                        [1.0230074886449367e-02, 4.9078839469375929e-01, 4.9582251778966463e-01],
                        [1.2737216187365332e-02, 1.3861878405978878e-01, 4.4707679385501874e-02],
                        [1.4126981551441176e-02, 2.6389760635220100e-01, 4.3672095251755069e-02],
                        [1.5332774415553483e-02, 4.5591174493061090e-02, 2.4521857350619572e-01],
                        [1.9150988304468378e-02, 3.9401035853706806e-01, 5.9276933781644683e-02],
                        [1.9581375851107374e-02, 1.0686720694096476e-01, 1.2832552694798030e-01],
                        [2.2519214872788323e-02, 2.2057527942548341e-01, 1.1327582130168469e-01],
                        [2.3744088053618714e-02, 1.2365383504129873e-01, 2.4272043721609243e-01],
                        [2.4512580234751023e-02, 7.1334879410097959e-02, 3.8790847894248653e-01],
                        [2.4681473602268786e-02, 2.2412691032497162e-01, 2.1328980000961897e-01],
                        [2.6967662919952676e-02, 3.5161904995564269e-01, 1.3793750997645651e-01],
                        [3.2346210873791456e-02, 3.6076234056773243e-01, 4.6512581996476732e-01],
                        [3.3996854517175490e-02, 3.1130012898251941e-01, 2.7007362938867141e-01],
                        ],
                    }
            elif index == 11:
                self.degree = 19
                data = {
                    's3': [
                        [3.0462961760147424e-02],
                        ],
                    'rot': [
                        [1.9501819580656993e-03, 1.0376656545701754e-02, 1.4481047265899900e-02],
                        [2.7619446171731755e-03, 5.2895640212959193e-02, 8.9271173425645341e-03],
                        [3.5331794317329432e-03, 1.3094057146527935e-01, 6.3960635617080460e-03],
                        [5.1520290776901397e-03, 1.2668186551090302e-02, 7.2908235059904125e-02],
                        [7.3117101662705459e-03, 2.4661396010476735e-01, 1.1321028448271661e-02],
                        [7.3894730517619434e-03, 1.2433000096283946e-02, 1.7150720385727522e-01],
                        [7.5477860526761394e-03, 9.4587086792603855e-03, 4.5455308365694880e-01],
                        [7.6154684066760230e-03, 3.8267712743290072e-01, 1.0304127159604519e-02],
                        [7.9007581331291057e-03, 1.0722190231133364e-02, 3.0281941897786346e-01],
                        [8.2104395329240191e-03, 6.3458887217335530e-02, 4.7982682558826824e-02],
                        [1.0631666580804146e-02, 1.4958534166780135e-01, 4.1535364284310518e-02],
                        [1.4518063122052106e-02, 6.5938374993168375e-02, 1.2709830130649977e-01],
                        [1.4694113731911951e-02, 4.1936034447469361e-01, 4.8413394484357990e-02],
                        [1.6869911193356551e-02, 5.1285971562743754e-02, 3.8545151944759559e-01],
                        [1.7219169524637742e-02, 5.9216171712594003e-02, 2.4426337874091408e-01],
                        [1.7491674145470797e-02, 1.5774435365253489e-01, 1.0703910299909378e-01],
                        [1.8291477800298231e-02, 2.7635637145129316e-01, 5.9395829650746024e-02],
                        [2.1089355502457149e-02, 4.0292543250410290e-01, 1.1125969746384887e-01],
                        [2.3029171331062762e-02, 1.4474120951067007e-01, 2.0733708666187714e-01],
                        [2.4934188451324880e-02, 1.2800219617071518e-01, 3.3880397181433680e-01],
                        [2.5956134949103395e-02, 2.6733402095713005e-01, 1.4787228580357800e-01],
                        [2.8915516306229339e-02, 3.8064039133743355e-01, 2.0742134128256490e-01],
                        [3.0165599679808742e-02, 2.4101907410276571e-01, 2.6708311799129086e-01],
                        ],
                    }
            elif index == 12:
                self.degree = 20
                data = {
                    'rot': [
                        [1.1389906148975041e-03, 7.9036813416234631e-03, 1.0892617666329891e-02],
                        [1.5357670874582498e-03, 3.7026142140495718e-03, 5.6835913941912758e-02],
                        [1.9246855917865366e-03, 1.0933739015022848e-01, 3.0385925733436734e-03],
                        [2.5004373123559145e-03, 4.2881075376943294e-02, 9.8050570254988034e-03],
                        [2.6307512361876621e-03, 1.7747325730732661e-03, 2.3669301898277445e-01],
                        [3.1956256140281531e-03, 3.1181457060113710e-01, 2.5455197956388257e-03],
                        [3.6517689940788467e-03, 2.9900066046955765e-03, 4.6311944115593690e-01],
                        [5.3245378912169057e-03, 3.2214232134941442e-02, 5.2485418254685598e-02],
                        [5.8444560283889410e-03, 1.2779960332488103e-02, 1.3137953817800016e-01],
                        [7.3080059801419982e-03, 1.9543072338191531e-01, 1.4095340079167391e-02],
                        [7.9063353532919291e-03, 9.7766916990501648e-02, 3.5000751662894826e-02],
                        [9.6559578708891262e-03, 1.6600662844177817e-02, 3.3867675226583793e-01],
                        [1.0314589003859623e-02, 4.1339508218074000e-01, 1.8202587826948211e-02],
                        [1.2209838544262552e-02, 6.8329374634159043e-02, 1.0867508995456668e-01],
                        [1.2838682322099244e-02, 3.9215307843232454e-02, 2.1433843005455050e-01],
                        [1.4666797697723754e-02, 2.8285140438768569e-01, 4.3250599724609151e-02],
                        [1.5405053862365679e-02, 1.6314907835570533e-01, 7.4632420343531666e-02],
                        [1.6575593874878298e-02, 4.3629058390662195e-01, 5.1653707778068925e-01],
                        [1.9989220381195195e-02, 1.2306908733084597e-01, 1.7394646430224309e-01],
                        [2.0297417477507431e-02, 8.3257905081074293e-02, 2.9918522779730361e-01],
                        [2.1636690505780494e-02, 3.7602894358398858e-01, 8.6437944469363939e-02],
                        [2.3025477362951779e-02, 2.3986629094495532e-01, 1.3011561089713888e-01],
                        [2.6323493747772552e-02, 1.3722114882399380e-01, 3.9101320130295769e-01],
                        [2.7048097627035000e-02, 1.8993213060838091e-01, 2.5032134600889316e-01],
                        [2.8994339729606518e-02, 3.2415825639563883e-01, 1.9472448888111191e-01],
                        [3.1390721621573442e-02, 3.3086291214705171e-01, 4.0744532437685332e-01],
                        ],
                    }
            elif index == 13:
                self.degree = 21
                data = {
                    's3': [
                        [1.5927243921705286e-02],
                        ],
                    'rot': [
                        [1.5400248104137986e-03, 1.0883381125829185e-02, 1.0843736020090887e-02],
                        [2.9640382112354419e-03, 1.3448308201330128e-01, 5.8940179144611419e-03],
                        [3.1425704793797702e-03, 5.6069791445608280e-02, 9.3407202951554924e-01],
                        [3.3225577295111818e-03, 5.6230797163851619e-02, 1.0411168900746122e-02],
                        [4.0709421276751961e-03, 4.9549225054526058e-01, 5.3013935392908201e-03],
                        [4.7065803891413347e-03, 1.3341354422143650e-01, 8.5650220211325812e-01],
                        [5.1858802396272143e-03, 2.3778885327379537e-01, 7.5355383003485144e-01],
                        [6.0531722729463668e-03, 2.3667582268756976e-01, 1.0431599868322363e-02],
                        [6.4973731547806023e-03, 3.5923743154358795e-01, 9.7744131190851992e-03],
                        [6.9733241654343350e-03, 3.6212379554213159e-01, 6.2748273139455280e-01],
                        [7.2058755893463717e-03, 5.4706462526630792e-02, 8.9337625860348302e-01],
                        [8.3650128288707305e-03, 1.2849784556464677e-01, 3.6812842147870548e-02],
                        [1.0226596336837779e-02, 1.3204562148598842e-01, 8.1675054229140631e-01],
                        [1.1740928736597080e-02, 4.8000288746551578e-01, 3.4623316765578373e-02],
                        [1.2183249444133565e-02, 2.3569865248618388e-01, 7.1763978029460807e-01],
                        [1.2865489474875409e-02, 1.2123545350512091e-01, 9.8717289213207965e-02],
                        [1.3095298262016823e-02, 2.2692131253456985e-01, 5.3382695673250657e-02],
                        [1.4086719053342241e-02, 3.5272595600222983e-01, 5.9395602013861637e-01],
                        [1.4184030719574419e-02, 3.4639476098063526e-01, 5.1134367191086910e-02],
                        [1.7220831567602329e-02, 2.0854537617999444e-01, 1.2666187408877325e-01],
                        [1.7413623959356122e-02, 1.1664118178749894e-01, 1.9358351370774260e-01],
                        [1.8083675543648467e-02, 3.0168173165951112e-01, 5.7948556128572692e-01],
                        [1.9149138766673224e-02, 3.5976650509436425e-01, 4.6544957877641646e-01],
                        [1.9227819270612501e-02, 3.1772789477972085e-01, 1.2192276586456074e-01],
                        [2.0031676761421528e-02, 4.5059923770816623e-01, 9.8026080230645227e-02],
                        [2.0765122861493131e-02, 2.6678020887821458e-01, 3.0930467163940578e-01],
                        [2.3815052706389131e-02, 2.1491332208551214e-01, 2.2361527123160835e-01],
                        [2.3907646563162150e-02, 3.4182082891498583e-01, 2.0305957510273218e-01],
                        ],
                    }
            elif index == 14:
                self.degree = 22
                data = {
                    'rot': [
                        [9.7541204093973732e-04, 1.1703384837887284e-03, 4.7853691880759081e-02],
                        [1.3104452211497902e-03, 1.0994365574026065e-02, 9.1086717537202100e-03],
                        [1.8193840846492013e-03, 1.0681692522528875e-03, 2.0270906338792563e-01],
                        [2.4853897178983416e-03, 2.2122835059211034e-03, 4.2176907067146541e-01],
                        [2.7943057624271765e-03, 5.7202598716253460e-02, 8.5608709992095848e-03],
                        [3.5481485720114999e-03, 3.5302421161527681e-01, 6.0942412505558905e-03],
                        [3.7786266563183753e-03, 1.3678895783915382e-01, 7.8499806284800869e-03],
                        [4.0382662850397440e-03, 2.4120956376003772e-01, 7.0272635517203280e-03],
                        [4.6332135930233680e-03, 1.1673747786687883e-02, 1.1264121642953522e-01],
                        [4.9307263403021448e-03, 3.0114899634799297e-02, 4.6055896520382444e-02],
                        [6.4157039907774679e-03, 4.5650015438745406e-01, 1.1437907707031122e-02],
                        [6.6484250441469278e-03, 1.1807594618901865e-02, 3.0499692169056031e-01],
                        [7.9373544556883367e-03, 9.6150558730147037e-02, 4.2635231869026166e-02],
                        [9.3918256712032123e-03, 3.0637657499207941e-02, 1.9699058002570907e-01],
                        [9.7665846237909512e-03, 1.9481524443080608e-01, 3.8664167437872397e-02],
                        [9.9393122364192579e-03, 6.0365503070241099e-02, 1.0661022068914792e-01],
                        [1.0785717950341073e-02, 3.1509089948205937e-01, 3.6089820174339142e-02],
                        [1.1198713817120030e-02, 4.1135836721581720e-01, 5.5639035396185565e-01],
                        [1.3592449250673841e-02, 1.4402035063048924e-01, 9.7715590184512757e-02],
                        [1.4107287313162501e-02, 4.2075770910212190e-01, 5.5528837489452670e-02],
                        [1.4345498985919950e-02, 6.0949899580789661e-02, 2.9205601614107290e-01],
                        [1.5033144681114326e-02, 9.6935106445587491e-02, 1.8422415689190805e-01],
                        [1.5837677803805628e-02, 2.5378346562064696e-01, 9.2228684901440233e-02],
                        [1.7114505548266754e-02, 3.4886710140216276e-01, 1.1623555207070974e-01],
                        [1.7971291100638841e-02, 1.9058155865307422e-01, 1.7214824666674494e-01],
                        [1.8545033196902469e-02, 9.6988114334812803e-02, 3.9655213150862650e-01],
                        [1.9398111246358062e-02, 1.4126633463063171e-01, 2.7537965024518302e-01],
                        [1.9523670586401507e-02, 4.1201810197995220e-01, 1.6857388429008832e-01],
                        [2.0625531969637040e-02, 2.7620933906532141e-01, 1.9919935637318403e-01],
                        [2.1313822420182853e-02, 2.1861061467249740e-01, 3.0568565104773043e-01],
                        [2.3527753167022922e-02, 3.3679904631184637e-01, 2.6981434578199104e-01],
                        ],
                    }
            elif index == 15:
                self.degree = 23
                data = {
                    's3': [
                        [2.5138871460293689e-02],
                        ],
                    'rot': [
                        [1.0661176825060275e-03, 9.4139490330046090e-03, 8.6464444518944781e-03],
                        [1.1098731505548912e-03, 4.8241021890889081e-04, 1.0882142058056087e-01],
                        [1.6296239556456284e-03, 4.9633556562943609e-01, 5.0329473593098173e-01],
                        [2.2052916931377745e-03, 8.6145275902432504e-03, 4.4964858940933154e-02],
                        [2.3175543197966387e-03, 4.9100663468775806e-02, 8.2424970824296982e-03],
                        [2.3216387016154016e-03, 2.6604160773538743e-03, 2.9470448202172089e-01],
                        [3.0036615113955651e-03, 3.3098446926941211e-01, 3.8206684917989277e-03],
                        [3.5476219235374643e-03, 1.1815450592101939e-01, 8.4131574146606557e-03],
                        [3.8026516365470241e-03, 2.1407309787902890e-01, 7.2053975765022519e-03],
                        [4.7343247026569429e-03, 4.4577412877333654e-02, 4.3026357023085333e-02],
                        [4.7820455294484820e-03, 1.9143139515349089e-01, 3.1169269889860296e-02],
                        [5.0549201673000697e-03, 1.0585098456769080e-02, 1.9186490304827739e-01],
                        [6.0452061344839153e-03, 2.5420226429005641e-02, 1.0540760648009682e-01],
                        [6.3127024456898287e-03, 5.9129291976109599e-01, 1.2107289245252150e-02],
                        [6.7764054871379984e-03, 1.0490365652094102e-01, 4.3370975391949562e-02],
                        [7.8847924276325507e-03, 4.2721744601873479e-01, 1.6697078855470619e-02],
                        [8.7369076407474780e-03, 1.7789929675087990e-01, 6.4511068023700172e-02],
                        [9.4344058539933377e-03, 8.0548215582571539e-02, 1.0197699396951582e-01],
                        [9.4908794278192789e-03, 3.1317311279855049e-02, 2.8534297804565589e-01],
                        [1.0210962656217749e-02, 2.9544675874255427e-01, 3.2881012535433060e-02],
                        [1.0519253335485042e-02, 5.4113217353947932e-02, 1.8385958270294381e-01],
                        [1.1689120375277516e-02, 4.2740065428049014e-02, 4.4355898660390503e-01],
                        [1.3700400279401443e-02, 1.4518767597337787e-01, 1.2979545045100729e-01],
                        [1.4460451299082753e-02, 7.4713978478763848e-02, 3.2991396142531471e-01],
                        [1.5231395783588919e-02, 3.8196804313044813e-01, 6.7362527515130416e-02],
                        [1.5485873319445833e-02, 2.2178354982181475e-01, 6.6898098435814957e-01],
                        [1.5988957436554496e-02, 2.5687081151314684e-01, 9.6049121135374796e-02],
                        [1.8929035905891643e-02, 1.1275130342695996e-01, 4.2367418202458157e-01],
                        [1.9748081356734056e-02, 2.1032305744103352e-01, 1.8700110967233269e-01],
                        [2.0667781559665956e-02, 1.6157520917947663e-01, 2.9901294845569942e-01],
                        [2.0798342664795102e-02, 3.3165622135557482e-01, 1.5061623551001871e-01],
                        [2.3575574840744129e-02, 2.1229476331689121e-01, 3.8427148525251237e-01],
                        [2.3691854308704501e-02, 2.7411374218935070e-01, 2.5872672300217803e-01],
                        ],
                    }
            elif index == 16:
                self.degree = 24
                data = {
                    's3': [
                        [1.0681776933386816e-02],
                        ],
                    'rot': [
                        [3.4307213843404004e-04, 7.2774421822864241e-03, 1.8717806316108168e-03],
                        [1.2229997020374074e-03, 9.3762141740159580e-02, 2.2258417763076133e-03],
                        [1.6381602736491938e-03, 2.7549956725481502e-02, 9.6482583162780022e-01],
                        [2.2372259458701242e-03, 3.8849156576576081e-02, 9.9922146846804730e-03],
                        [2.8575018682782732e-03, 8.4582464342299463e-02, 9.0758335037465498e-01],
                        [3.6858296163274473e-03, 1.6971197426176723e-01, 8.5509476949102940e-03],
                        [3.6947954420524331e-03, 2.6111425988892939e-01, 7.3552353111519539e-03],
                        [3.9020320062079557e-03, 1.6791970513108379e-01, 8.2400508353903845e-01],
                        [4.0280690969310036e-03, 3.6656244587496484e-01, 7.0056601694997800e-03],
                        [4.5248807201616788e-03, 2.7143135940818341e-01, 7.2062829774608572e-01],
                        [4.5396029262674093e-03, 4.8341512229719208e-01, 7.3611935668400760e-03],
                        [4.7456954473118320e-03, 3.8795737424569154e-01, 6.0432990841865120e-01],
                        [5.1805365733744611e-03, 5.2053611601207826e-02, 9.0767212361002281e-01],
                        [5.3119232327232275e-03, 2.2901890921372595e-01, 8.9345256498108053e-02],
                        [5.3641950429667963e-03, 9.4914195571636092e-02, 2.6796719091792362e-02],
                        [7.8409659451889775e-03, 1.2322801473641305e-01, 8.3518445285919996e-01],
                        [8.6994022662133397e-03, 1.7412650727485976e-01, 4.4130628886304042e-02],
                        [8.8402036333678768e-03, 2.7218074600568665e-01, 3.7468721939442978e-02],
                        [9.6291322198899625e-03, 9.9006351507515397e-02, 8.1968796781302034e-02],
                        [9.8032526098839855e-03, 2.1893278755063750e-01, 7.3931441242151419e-01],
                        [9.9428173758288677e-03, 3.8545785619529427e-01, 3.7011409874506268e-02],
                        [1.0748240736700020e-02, 4.5393153297369843e-01, 5.0712412056704248e-01],
                        [1.0775272663604467e-02, 3.3141406799249240e-01, 6.2787210031926588e-01],
                        [1.1783097752825196e-02, 1.7541847870022081e-01, 1.0978899948538104e-01],
                        [1.2156767654104773e-02, 2.9942460625822742e-01, 8.9517741605650569e-02],
                        [1.2945705236132829e-02, 1.6443828421427001e-01, 7.3572041312406400e-01],
                        [1.3554899747479114e-02, 3.6972475893928680e-01, 4.6312780745367282e-01],
                        [1.4675832493069557e-02, 4.0636906177728344e-01, 9.0716786111306250e-02],
                        [1.5420454458399905e-02, 2.6742066429926759e-01, 6.3290272516985024e-01],
                        [1.5515997794155202e-02, 3.8320410790975118e-01, 5.2162372005069046e-01],
                        [1.5662589306009916e-02, 1.7872449232024495e-01, 1.9203113575777414e-01],
                        [1.5927537510847807e-02, 2.8282912859335518e-01, 5.3764243749031349e-01],
                        [1.6103533030079650e-02, 2.7060647925422926e-01, 1.6133995005265445e-01],
                        [1.6658080425731265e-02, 3.7087434674492326e-01, 1.6454857353822244e-01],
                        [1.9353079492362937e-02, 3.6384081188928319e-01, 3.8336719177004763e-01],
                        [2.0459358637735462e-02, 2.7573532186277133e-01, 2.5276044951208954e-01],
                        ],
                    }
            elif index == 17:
                self.degree = 25
                data = {
                    'rot': [
                        [5.2694781097104080e-04, 1.3188177147405115e-02, 3.0795638401191457e-03],
                        [5.3837857124899402e-04, 2.7259621361305189e-03, 1.7104304759574109e-02],
                        [1.7125572938820176e-03, 6.2984002092478536e-02, 9.3137198416881051e-01],
                        [1.9123328669705840e-03, 5.2023800673153514e-02, 7.4379149608617993e-03],
                        [1.9897445140067069e-03, 2.2020020614167110e-01, 7.7641433442449037e-01],
                        [2.7030017516124594e-03, 3.0439556156815283e-02, 9.4485645152778941e-01],
                        [2.8237621420648352e-03, 1.1399317437752610e-01, 7.4710293157794422e-03],
                        [2.9151491724731531e-03, 3.4229521018802234e-01, 6.5261356339758947e-01],
                        [3.1462287823001292e-03, 1.3047399195055950e-01, 8.6152496607629980e-01],
                        [3.2543977488675223e-03, 2.0017930834386713e-01, 6.5078186830295317e-03],
                        [3.7230657814978497e-03, 3.0737236321543387e-01, 6.3524070945921943e-03],
                        [4.3063147392815295e-03, 2.7621732662271042e-01, 7.0637055778341040e-01],
                        [4.5251341589623130e-03, 4.2293548307742690e-01, 7.5627546953375892e-03],
                        [4.5624992213178081e-03, 4.5322700336667143e-01, 5.3899804588538403e-01],
                        [4.6802766206098540e-03, 1.9019520269362408e-01, 7.8403651191039858e-01],
                        [5.6405559815438430e-03, 3.6171829980612503e-02, 8.4456400529242914e-02],
                        [5.7784230507748075e-03, 7.6079438865903654e-02, 4.0507632612955521e-02],
                        [6.5791413507152469e-03, 1.4994597748785785e-01, 3.5835058933034056e-02],
                        [6.7296531658427618e-03, 1.5095534117900294e-01, 7.9691370268293504e-01],
                        [7.5755424358683703e-03, 2.4478331097657494e-01, 3.2689779930828645e-02],
                        [8.1458350463336285e-03, 1.7067443366794324e-01, 7.8755869338188678e-02],
                        [9.0818352396265633e-03, 3.7194261169194315e-01, 5.9342856949177003e-01],
                        [9.4008953043083609e-03, 3.5179201043222375e-01, 3.6352873144138077e-02],
                        [9.5240045440707528e-03, 9.8440061147214972e-02, 9.6959138605557882e-02],
                        [1.0107208145267218e-02, 2.6086502629810787e-01, 6.8408965318422899e-01],
                        [1.0859126807714841e-02, 3.6658214432706732e-01, 5.5078190255175696e-01],
                        [1.1168984186287688e-02, 4.6873598774383901e-01, 4.1136822171029049e-02],
                        [1.1772296865232151e-02, 2.5761793161354124e-01, 8.2486517285323274e-02],
                        [1.2142404008477154e-02, 1.8451795241283384e-01, 7.1257592580373208e-01],
                        [1.2552698926699687e-02, 2.8120911865122772e-01, 6.0525730819752110e-01],
                        [1.2781441276098388e-02, 1.7359149167563334e-01, 1.4220931869919087e-01],
                        [1.3246841387624652e-02, 4.4236202799582158e-01, 4.5498832765797559e-01],
                        [1.3828241563512152e-02, 3.5936822655579759e-01, 9.0795315699793919e-02],
                        [1.5928212162150315e-02, 1.8213426892674237e-01, 2.2866704214072983e-01],
                        [1.6745957138503850e-02, 2.6734304273628207e-01, 1.5618441381865139e-01],
                        [1.8774610553793231e-02, 3.6529032090656272e-01, 1.7379280231853739e-01],
                        [1.9738005080186975e-02, 3.4506482660138488e-01, 4.8229912538917341e-01],
                        [2.0286284358686280e-02, 2.6556222786287531e-01, 2.5680262970384421e-01],
                        [2.1625343577947622e-02, 3.6295638550177745e-01, 3.7155094737369060e-01],
                        ],
                    }

        self.data = data
        self.bary, self.weights = untangle2(data)
        self.points = self.bary[:, 1:]
        return
